package x.trident.core.email.jdk;

import x.trident.core.email.api.EmailConfigApi;
import x.trident.core.email.api.constants.MailConstants;

/**
 * 默认的邮箱配置
 *
 * @author jason.yan
 * @date 2022/6/30
 */
public class DefaultEmailConfigImpl implements EmailConfigApi {

    /**
     * smtp服务器地址，默认用126的邮箱
     */
    public String getSmtpHost() {
        return MailConstants.DEFAULT_SMTP_HOST;
    }

    /**
     * smtp服务端口，默认：465
     */
    public Integer getSmtpPort() {
        return MailConstants.DEFAULT_SMTP_PORT;
    }

    /**
     * 是否启用账号密码验证，默认true
     */
    public Boolean getSmtpAuthEnable() {
        return MailConstants.DEFAULT_SMTP_AUTH_ENABLE;
    }

    /**
     * 邮箱的账号
     */
    public String getSmtpUser() {
        return MailConstants.DEFAULT_SMTP_USERNAME;
    }

    /**
     * 邮箱的密码或者授权码
     */
    public String getSmtpPass() {
        return MailConstants.DEFAULT_SMTP_PASSWORD;
    }

    /**
     * 邮箱的发送方邮箱
     */
    public String getSmtpFrom() {
        return MailConstants.DEFAULT_SMTP_SEND_FROM;
    }

    /**
     * 使用 STARTTLS安全连接，STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接（TLS或SSL）， 而不是使用一个单独的加密通信端口。
     */
    public Boolean getStartTlsEnable() {
        return MailConstants.DEFAULT_SMTP_TLS_ENABLE;
    }

    /**
     * 使用 SSL安全连接
     */
    public Boolean getSSLEnable() {
        return MailConstants.DEFAULT_SMTP_TLS_ENABLE;
    }

    /**
     * 指定的端口连接到在使用指定的套接字工厂
     */
    public Integer getSocketFactoryPort() {
        return MailConstants.DEFAULT_SMTP_PORT;
    }

    /**
     * SMTP超时时长，单位毫秒
     */
    public Long getTimeout() {
        return MailConstants.TIMEOUT_MILLISECOND;
    }

    /**
     * Socket连接超时值，单位毫秒，缺省值不超时
     */
    public Long getConnectionTimeout() {
        return MailConstants.TIMEOUT_MILLISECOND;
    }
}
